 \subsection{Affichage 3D}
 %triangulation
 \subsubsection{La triangulation}
	\paragraph{}
	La triangulation implémentée pour le projet est celle développée lors du cours des systèmes d'informations géométriques. Nous allons redéfinir rapidement les grands principes de cet algorithme.L'algorithme se découpe en plusieurs étapes. 

	\paragraph{}	
	Pour débuter nous cherchons le point le plus à gauche de tout le polyèdre. Une fois ce point trouvé, nous cherchons ses voisins et nous traçons une droite à l'aide de ces deux points. Une fois cette droite tracé nous cherchons s'il existe dans le polygone, un point à gauche de celle-ci. Deux cas sont alors à traiter : 
	\vspace{0.4cm}
		\begin{itemize}
	
	\item Aucun point à gauche : Alors nous avons trouvé un triangle du polyèdre, nous recommençons ensuite le traitement du dessus sans le triangle trouvé.
	
	\item Un point à gauche : Alors nous prenons un des voisins et créons un triangle avec le point de départ, le voisin et le point trouvé. Nous recommençons ensuite le traitement du dessus.
	\end{itemize}

\paragraph{}
Nous arrêtons l'algorithme lorsqu'il ne reste plus qu'un seul triangle dans le polyèdre. Cet algorithme n'est pas le plus optimale mais il convient parfaitement à l'utilisation que l'on en fait.

	\paragraph{}
 %optimisation
 \subsubsection{Optimisation}
L'ajout de l'ensemble des formes de la carte s'est vite montré être lourd même sur les smartphones les plus puissant du moment.
Une optimisation possible était d'envoyer toutes les formes à dessiner en un seul appel OpenGL ES (il s'agit du même 
principe que les VBO en OpenGL).
 %gestion des layers
 \subsection{Gestion des Layers}
 Suite à l'ajout des vertex buffer pour l'otpimisation, 
 il est très vite apparut commode de regrouper les objets de même type dans un objet.

 Cet objet est un Layer, il s'occupe de créer le 
 buffer de tous les éléments qu'il contient pour l'appel OpenGL ES.
 Chaque objet étant de même type il sont affiché avec la même couleur en OpenGL, 
 ce qui simplifie grandement la gestion des buffers.

Ces Layers sont donc facilement paramétrable, et ce même dynamiquement.
Un des exemples présenté dans l'application est l'activation / désactivation des Layers. 
Cela permet à l'application de facilement reproduire le comportement des système géographique moderne qui 
rajoute des éléments dynamiquement en fonction du zoom.

 Les Layers permettent aussi de rajouter facilement un nouveau type d'objet dans l'application,
  il est tout a fait possible d'ajouter des points d'intérêts facilement au projet, 
  car il suffit de créer un nouveau Layer et de l'ajouter dans la liste des Layers.

